#pragma once

class TimeoutNotifier;
class FastBlockQueue;
class Dealing;
class Cancellation;
class AbstractApiConnection;

class SendRequestThread : public boost::noncopyable
{
public:
	SendRequestThread(TimeoutNotifier& timeoutNotifier,
		FastBlockQueue& requestQueue,
		FastBlockQueue& responseQueue,
		AbstractApiConnection& requestHandler);
	~SendRequestThread();
	void Run();
	
private:
	TimeoutNotifier& m_timeoutNotifier;
	FastBlockQueue& m_requestQueue;
	FastBlockQueue& m_responseQueue;
	AbstractApiConnection& m_apiConnection;

	std::map<std::string,int> m_subscribedMarkets;
	std::map<std::string,int> m_subscribedPendingMarkets;
};